// pages/questionfeedback/questionfeedback.js
const app = getApp(); // 云：add this before every page //
const HTTP = require('../../utils/http');
const API = require('../../utils/api');
const FormData = require('../../utils/formData.js')

Page({

  /**
   * 页面的初始数据
   */
  data: {
    safeBottom: app.globalData.safeBottom, // 云：add this before every page //
    safeTop: 0,

    dateValue:'',
    // nameValue:"",
    // contactValue: "",
    course:[],
    time: 0,
    type: '',
    questionTypeArray:[
      '课程建议','系统建议','问题反馈','其他'
    ],
    questionTypeIndex:-1,

    disabledEdit: false,
    descriptionValue:"",
    descriptionSize:{ maxHeight: 80, minHeight: 80 },
    
    imageFileList:[
    ],
    maxCountImage: 3,
  },

  datePickerBindchange:function(e){
    this.setData({
     dateValue: e.detail.value
    })
    console.log("选择的日期：", e.detail.value)
   },
   pickQuestionType:function(e){
    console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      questionTypeIndex: e.detail.value
    });
  },

  getNowFormatDate () {
    let date = new Date()
    const year = date.getFullYear();
    const month = date.getMonth() + 1;
    const day = date.getDate();
  
    return `${[year, month, day].join('-')}`;
  },

  // 在阅读上传图片前做一些检查和缩放工作
  beforeReadImage(event){
    console.log("feedback读取了图片", event.detail.file)
    let imagefiles=event.detail.file
    let imageFileList = this.data.imageFileList
    for(var i = 0;i<imagefiles.length;i++){
      imageFileList.push(imagefiles[i])
    }
    this.setData({
      imageFileList: imageFileList
    })
    // return new Promise((resolve)=>{
    //     // compressorjs 默认开启 checkOrientation 选项
    //     // 会将图片修正为正确方向
    //     new Compressor(file, {
    //         quality: 0.6,
    //         width: 1000,
    //         convertSize:2000000,
    //         success: resolve,
    //         // success(result) {
    //         //     resolve
    //         //     alert('chengg')
    //         // },
    //         error(err) {
    //             console.log(err.message);
    //         },
    // });
    // });
  },
  // 图片读取之后
  afterReadImage(file) {
    // 此时可以自行将文件上传至服务器
    console.log("feedback的图片信息是：",file);
  //   this.imageFileList.push(file.content);
  },

  deleteImg(event){
    let index= event.detail.index
    console.log(index)//输出的就是图片所在fileList的下标，自己根据需要进行操作就行
    let imageFileList = this.data.imageFileList
    imageFileList.splice(index, 1)
    this.setData({
      imageFileList: imageFileList
    })
  },

  tapSubmit(){
    console.log('点击了submit按钮')
    if(this.data.questionTypeIndex===-1){
      wx.showToast({
        title: '请选择"问题类型"',
        icon: "error"
      })
    }
    else if(this.data.descriptionValue.length<=4){
      wx.showToast({
        title: '请填写"问题描述并不少于5字"！',
        icon: "error"
      })
    }
    else if(this.data.imageFileList.length<1){
      wx.showToast({
        title: '请选择图片',
        icon: "error"
      })
    }
    else{
      let formData = new FormData();
      this.data.imageFileList.map((item)=>{
          //files是后台参数name字段对应值
          formData.appendFile("files", item.url);
      })
      console.log('feedback上传图片的param值是：',formData.getData())

      let data = formData.getData();

      wx.request({
        url: app.globalData.server+'/app-api/epg/file', // 接口
        header:{
          "Authorization": 'Bearer '+ wx.getStorageSync('accessTokenData').accessToken,
          'content-type': data.contentType
        },
        data: data.buffer,
        method: "post",
        success: res => {
          console.log("根据accessToken上传文件的结果是：",res)
          let param = {};
          if(this.data.course){
            param = {
                "courseId":this.data.course.id,
                "type": this.data.questionTypeArray[this.data.questionTypeIndex],
                "detail": this.data.descriptionValue,
                "src": res.data.data
              };
          }
          else{
            param = {
                "type": this.data.questionTypeArray[this.data.questionTypeIndex],
                "detail": this.data.descriptionValue,
                "src": res.data.data
              };
          }
          
          console.log("反馈信息是：",param)
          wx.request({
            url: app.globalData.server+'/app-api/epg/feedback', // 进行反馈
            header:{
              "Authorization": 'Bearer '+ wx.getStorageSync('accessTokenData').accessToken,
              'content-type': 'application/json'
            },
            data: param,
            method: "post",
            success: res => {
              console.log("根据accessToken上传反馈的结果是：",res)  
              if(res.data.code===0){
                wx.showModal({
                  title: '反馈成功',
                  content: "反馈成功，点击确定返回",
                  showCancel:false,
                  success (res) {
                    if (res.confirm) {
                      console.log('用户点击确定')
                      wx.navigateBack({
                        delta: 1,
                      })
                    }
                  }
                })
              }
              else{
                wx.showModal({
                  title: '提示',
                  content: JSON.stringify(res.data)
                })
              }
                   
            },
            fail: err => {
              wx.showModal({
                title: '提示',
                content: JSON.stringify(err)
              })
              console.log(err);
            }
          })
        },
        fail: err => {
          wx.showModal({
            title: '提示',
            content: JSON.stringify(err)
          })
          console.log(err);
        }
      })

    }
  },

  // 设置是否可编辑
  setFeedback(data){
    let src_images = [];
    for(let i = 0;i<data.src.length;i++){
      src_images.push({
        size: 0,
        thumb: data.src[i],
        type: "image",
        url: data.src[i],
      })
    }
    this.setData({
      time: this.getNowFormatDate(data.createTime),
      type: data.type,
      descriptionValue: data.detail,
      imageFileList:src_images,
      disabledEdit: true,
      maxCountImage: src_images.length,
    }) 
  },


  /**
   * 生命周期函数--监听页面加载
   */
  // 系统自动调用，options系统自动传入
  // options封装了上一个页面传进来的参数，在此使用options形参接收
  onLoad: function (options) {
    console.log('跳转到当前页面的参数是：',options)
    if(options.id){
      wx.request({
        url: API.GetCourseDetail, // 进行反馈
        header:{
          "Authorization": 'Bearer '+ wx.getStorageSync('accessTokenData').accessToken
        },
        data: {id: options.id},
        method: "get",
        success: res => {
          console.log("我的反馈获取的课程信息是：",res)  
          if(res.data.code===0){
            this.setData({
              course:res.data.data
            })
          }
          else{
            wx.showModal({
              title: '提示',
              content: JSON.stringify(res.data)
            })
          }     
        },
        fail: err => {
          wx.showModal({
            title: '提示',
            content: JSON.stringify(err)
          })
          console.log(err);
        }
      })
    }
    else if(options.feedbackid){
      wx.showLoading({
        title: '正在加载',
        mask: true
      })
      wx.request({
        url: app.globalData.server+'/app-api/epg/feedback',
        header:{
          "Authorization": 'Bearer '+this.data.accessToken,
        },
        method: "GET",
        data:{id:options.feedbackid},
        success: (res) => {
          console.log(`根据accessToken获取的feedbackid是${options.feedbackid}用户学习数据是：`, res)
          if(res.data.data.courseId){
            wx.request({
              url: API.GetCourseDetail, // 进行反馈
              header:{
                "Authorization": 'Bearer '+ wx.getStorageSync('accessTokenData').accessToken
              },
              data: {id: res.data.data.courseId},
              method: "get",
              success: resCourse => {
                console.log("我的反馈获取的课程信息是：",resCourse)  
                if(resCourse.data.code===0){
                  this.setData({
                    course:resCourse.data.data
                  })
                  this.setFeedback(res.data.data)
                }
                else{
                  wx.showModal({
                    title: '提示',
                    content: JSON.stringify(res.data)
                  })
                }     
              },
              fail: err => {
                wx.showModal({
                  title: '提示',
                  content: JSON.stringify(err)
                })
                console.log(err);
              }
            })
          }
          else{
            this.setFeedback(res.data.data)
          }
          
        },
        fail: (err) => {
          wx.showModal({
            title: '提示',
            content: JSON.stringify(err),
            success: function (res) {
              if (res.confirm) {//这里是点击了确定以后
                console.log('用户点击确定')
              } else {//这里是点击了取消以后
                console.log('用户点击取消')
              }
            }
          })
          console.log(err);
        },
        complete:()=>{
          wx.hideLoading();
        }
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    console.log('页面初次渲染完成时间: ', this.getNowFormatDate())
    this.setData({
      dateValue: this.getNowFormatDate()
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})